Java Binary Compatibility Is Almost Correct Version 2
نویسندگان
چکیده
The Java language description is unusual in that it de nes the e ect of interleaving separate compilation and source code modi cations. In Java, certain source code modi cations, such as adding a method to a class, are de ned as binary compatible. The Java language description does not require the re-compilation of programs importing classes or interfaces which were modi ed in binary compatible ways, and it claims that successful linking and execution of the altered program is guaranteed. In this paper we show that Java binary compatibility does not actually guarantee successful linking and execution. We then suggest a framework in which we formalize the requirement of safe linking and execution without re-compilation and we propose a more modest de nition of binary compatibility. We prove for a substantial subset of Java, that our de nition guarantees safe linking and execution.
منابع مشابه
What can Java Binary Compatibility mean?
Java binary compatibility prescribes conditions under which modi cation and re-compilation of classes does not necessitate re-compilation of further classes importing the modi ed classes. Binary compatibility is a novel concept for language design. We argue that the description of the term binary compatibility in the Java language speci cation allows for many possible interpretations. We discus...
متن کاملSupporting Binary Compatibility with Static Compilation
There is an ongoing debate in the Java community on whether statically compiled implementations can meet the Java specification on dynamic features such as binary compatibility. Static compilation is sometimes desirable because it provides better code optimization, smaller memory footprint, more robustness, and better intellectual property protection. Unfortunately, none of the existing static ...
متن کاملType Evolution and Version Management in a Persistent Distributed Operating System
Todays commercial Operating Systems (OS) use message passing communication facilities such as Corba, Remote Procedure Calls, and TCP/IP. Distributed Shared Memory (DSM) is an alternative mainly used for scientific computing and specific parallel algorithms. We are currently developing a general purpose PC Operating System using the DSM paradigm as communication media. A new memory consistency m...
متن کاملChanging Java Programs
The promises of object-orientation and distributed computing could be delivered if the software we needed were written in stone. But it isn't, it changes. The challenge of distributed object-oriented maintenance is to find a means of evolving software, which already has a distributed client base. Working within this scenario, we observe how certain object-oriented language systems seek to suppo...
متن کاملCommon Derived Types for SPARC V 8 and V 9
There is a trade-off between making space for future developments, and reducing interoperability and compatibility. We’ve attempted to make some decisions here, and explain our rationale. Most of the types are the scalar types from . These types are used in many fundamental system interfaces, so it’s important that we get this correct from the beginning. Our approach has been a con...
متن کامل